package jp.co.toshiba.ffsa.action.csde;

import javax.annotation.Resource;

import jp.co.toshiba.ffsa.action.common.CommonAction;
import jp.co.toshiba.ffsa.dto.LoginDto;
import jp.co.toshiba.ffsa.form.csde.Csde101Form;
import jp.co.toshiba.ffsa.service.csde.Csde101Service;

import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.util.RequestUtil;

/**
 * 設計I/F - プロジェクト一覧
 * @author npc
 */
public class Csde101Action extends CommonAction {

    /** 画面ID */
    public String screenID = "CSDE101";

    /** アクションフォーム */
    @ActionForm
    @Resource
    protected Csde101Form csde101Form;

    /**
     * 初期処理
     * @return 画面遷移先
     */
    @Execute(validator = false)
    public String index() throws Exception {

        try {
            // ログイン済判定する
            if( !judgeLogin(csde101Form.getSessionId()) ){
                return topTransition;
            }

            // リファラ判定
            if( !judgeRefferer() ){
                return topTransition;
            }

            // Serviceクラスを呼び出す
            Csde101Service csde101Service = new Csde101Service();

            // ログインユーザID取得
            csde101Service.setUserId(((LoginDto)RequestUtil.getRequest().getSession().getAttribute("login_dto")).getUserID());

            // プロジェクト情報取得
            csde101Form.projectList = csde101Service.getProjectList();

            // ワークフロー情報取得
            csde101Form.workFlowList = csde101Service.getWorkFlowList();

            return "/csde/csde101.jsp";

        } catch (Exception e) {
            errorLogWriter(e, "index", screenID);
            throw e;
        }

    }
}